package cl.loso.melon.server.action;

import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import cl.loso.melon.server.model.AreaLVS;
import cl.loso.melon.server.model.NegocioLVS;
import cl.loso.melon.server.model.SitioLVS;
import cl.loso.melon.server.model.UsuarioLVS;
import cl.loso.melon.server.model.VisitaLVS;
import cl.loso.melon.server.negocio.AreaLVSBO;
import cl.loso.melon.server.negocio.NegocioLVSBO;
import cl.loso.melon.server.negocio.ReporteMetaBO;
import cl.loso.melon.server.negocio.SitioLVSBO;
import cl.loso.melon.server.negocio.UsuarioLVSBO;
import cl.loso.melon.server.negocio.VisitaLVSBO;
import cl.loso.melon.server.pojos.ItemLVS2;
import cl.loso.melon.server.pojos.VisitaLVS2;
import cl.loso.melon.server.util.Util;
import com.opensymphony.xwork2.ActionSupport;

public class VisitaLVSAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	private static Log log = LogFactory.getLog(VisitaLVSAction.class);
	private String idUsuario;
	private String idVisita;
	private String fecha;
	private String personas;
	private String horini;
	private String horter;
	private String idNegocio;
	private String idSitio;
	private String idArea;
	private String comentario;
	private String seguro;
	private String inseguro;
	private String nombre;
	private List<NegocioLVS> negocioList;
	private List<SitioLVS> sitioList;
	private List<AreaLVS> areaList;
	private List<UsuarioLVS> usuarioList;
	private List<ItemLVS2> visitaitemList;
	private List<VisitaLVS> visitaList;
	private VisitaLVS2 visitaLVS;
	private UsuarioLVS usuarioLVS;
	private String fechaini;
	private String fechater;
	private boolean sepuedegrabar;

	public String detalleVisitasUsuario() {
		try {
			//log.info("detalleVisitasUsuario idUsuario: " + idUsuario);
			//log.info("detalleVisitasUsuario fechaini: " + fechaini);
			//log.info("detalleVisitasUsuario fechater: " + fechater);

			visitaList = ReporteMetaBO.detalleVisitasUsuarioLVS(idUsuario,
					fechaini, fechater);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String obtenerVisita() {
		try {
			visitaList = VisitaLVSBO.obtenerVisitaLVS(idUsuario);
			usuarioLVS = UsuarioLVSBO.editarUsuarioLVS(idUsuario);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String guardarVisita() {
		try {
			// validar gerencia
			Long gerencia = UsuarioLVSBO.editarUsuarioLVS(idUsuario)
					.getGerencia();
			sepuedegrabar=true;
			if (gerencia.longValue() != 0) {
				
				Object[] idSeguro = Util.split(seguro, "|");
				Object[] idInseguro = Util.split(inseguro, "|");

				VisitaLVSBO.guardarVisitaLVS(idUsuario, fecha, personas,
						horini, horter, idNegocio, idSitio, idArea, comentario,
						idSeguro, idInseguro);
			} else {
				sepuedegrabar=false;
			}

		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String actualizarVisita() {
		try {

			Object[] idSeguro = Util.split(seguro, "|");
			Object[] idInseguro = Util.split(inseguro, "|");

			VisitaLVSBO.actualizarVisitaLVS(idUsuario, idVisita, fecha,
					personas, horini, horter, idNegocio, idSitio, idArea,
					comentario, idSeguro, idInseguro);

		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String editarVisita() {
		try {
			visitaLVS = VisitaLVSBO.editarVisitaLVS(idUsuario, idVisita);
			negocioList = NegocioLVSBO.obtenerNegocioLVS();
			sitioList = SitioLVSBO.obtenerSitioLVS(String.valueOf(visitaLVS
					.getNegocio()));
			areaList = AreaLVSBO.obtenerAreaLVS(String.valueOf(visitaLVS
					.getNegocio()), String.valueOf(visitaLVS.getSitio()));
			// usuarioList = UsuarioLVSBO.obtenerUsuarioLVS();
			visitaLVS = VisitaLVSBO.editarVisitaLVS(idUsuario, idVisita);
			visitaitemList = VisitaLVSBO.obtenerItemSVL2(idUsuario, idVisita);// papa

		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String borrarVisita() {
		try {
			VisitaLVSBO.borrarVisitaLVS(idUsuario, idVisita);
		} catch (Exception e) {
			log.error(e);
		}
		return ActionSupport.SUCCESS;
	}

	public String getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(String idUsuario) {
		this.idUsuario = idUsuario;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getIdVisita() {
		return idVisita;
	}

	public void setIdVisita(String idVisita) {
		this.idVisita = idVisita;
	}

	public String getFecha() {
		return fecha;
	}

	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	public String getPersonas() {
		return personas;
	}

	public void setPersonas(String personas) {
		this.personas = personas;
	}

	public String getHorini() {
		return horini;
	}

	public void setHorini(String horini) {
		this.horini = horini;
	}

	public String getHorter() {
		return horter;
	}

	public void setHorter(String horter) {
		this.horter = horter;
	}

	public String getIdNegocio() {
		return idNegocio;
	}

	public void setIdNegocio(String idNegocio) {
		this.idNegocio = idNegocio;
	}

	public String getIdSitio() {
		return idSitio;
	}

	public void setIdSitio(String idSitio) {
		this.idSitio = idSitio;
	}

	public String getIdArea() {
		return idArea;
	}

	public void setIdArea(String idArea) {
		this.idArea = idArea;
	}

	public String getComentario() {
		return comentario;
	}

	public void setComentario(String comentario) {
		this.comentario = comentario;
	}

	public String getSeguro() {
		return seguro;
	}

	public void setSeguro(String seguro) {
		this.seguro = seguro;
	}

	public String getInseguro() {
		return inseguro;
	}

	public void setInseguro(String inseguro) {
		this.inseguro = inseguro;
	}

	public List<NegocioLVS> getNegocioList() {
		return negocioList;
	}

	public void setNegocioList(List<NegocioLVS> negocioList) {
		this.negocioList = negocioList;
	}

	public List<SitioLVS> getSitioList() {
		return sitioList;
	}

	public void setSitioList(List<SitioLVS> sitioList) {
		this.sitioList = sitioList;
	}

	public List<AreaLVS> getAreaList() {
		return areaList;
	}

	public void setAreaList(List<AreaLVS> areaList) {
		this.areaList = areaList;
	}

	public List<UsuarioLVS> getUsuarioList() {
		return usuarioList;
	}

	public void setUsuarioList(List<UsuarioLVS> usuarioList) {
		this.usuarioList = usuarioList;
	}

	public List<VisitaLVS> getVisitaList() {
		return visitaList;
	}

	public void setVisitaList(List<VisitaLVS> visitaList) {
		this.visitaList = visitaList;
	}

	public List<ItemLVS2> getVisitaitemList() {
		return visitaitemList;
	}

	public void setVisitaitemList(List<ItemLVS2> visitaitemList) {
		this.visitaitemList = visitaitemList;
	}

	public VisitaLVS2 getVisitaLVS() {
		return visitaLVS;
	}

	public void setVisitaLVS(VisitaLVS2 visitaLVS) {
		this.visitaLVS = visitaLVS;
	}

	public UsuarioLVS getUsuarioLVS() {
		return usuarioLVS;
	}

	public void setUsuarioLVS(UsuarioLVS usuarioLVS) {
		this.usuarioLVS = usuarioLVS;
	}

	public String getFechaini() {
		return fechaini;
	}

	public void setFechaini(String fechaini) {
		this.fechaini = fechaini;
	}

	public String getFechater() {
		return fechater;
	}

	public void setFechater(String fechater) {
		this.fechater = fechater;
	}

	public boolean isSepuedegrabar() {
		return sepuedegrabar;
	}

	public void setSepuedegrabar(boolean sepuedegrabar) {
		this.sepuedegrabar = sepuedegrabar;
	}

}
